package recycle.dao;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import recycle.pojo.Productinfo;
import recycle.vo.ProductinfoParam;

import java.io.Serializable;
import java.util.List;

/**
* 描述：商品信息表 数据库访问层接口
* @author 孙冉
* @date 2019/07/22
*/
@Mapper
public interface ProductinfoMapper {

    /**
    * 描述：根据Id获取Productinfo对象
    * @param id
    */
    Productinfo findById(Serializable productId);
    
    /**
    * 描述：获取所有的Productinfo对象
    */
    List<Productinfo> findAll();

	/**
    * 描述：新增保存Productinfo对象
    */
    int save(Productinfo productinfo);

	/**
    * 描述：根据Id删除Productinfo对象
    * @param id
    */
    int delete(Serializable productId);
	
	/**
    * 描述：更新Productinfo对象
    */
    int update(Productinfo productinfo);
    
    /**
     * 根据不确定的条件，动态查询
     */
    List<Productinfo> query(ProductinfoParam param);
    
    /**
     * 根据不确定的条件，查询总行数
     */
    int getCount(ProductinfoParam param);
    
    /**
     * 获得表中数据的总行数
     */
    int getTotalCount();

    /**
     * 商品列表页面的查询
     * @param oneCategoryId
     * @param twoCategoryId
     * @return
     */
    List<Productinfo> selectProductInProductList(@Param("oneCategoryId") Integer oneCategoryId,@Param("twoCategoryId") Integer twoCategoryId);

    /**
     * 根据商品名称
     */
    Productinfo findByproductName(@Param("productName") String productName);
    /**
     * 根据类型名查
     */
    Productinfo findByproductcategory(@Param("productcategory") String productcategory);
}
